New Insights on Architectural Connectors

نویسندگان

  • Roberto Bruni
  • José Luiz Fiadeiro
  • Ivan Lanese
  • Antónia Lopes
  • Ugo Montanari
چکیده

This work is a first step toward the reconciliation of the two main approaches to composition in system modeling, namely the categorical one and the algebraic one. In particular, we present a mapping from CommUnity, which uses the categorical approach based on colimits, into the Tile Model, which uses algebraic operators for composition. Our results include a standard decomposition for CommUnity programs. We also establish a strong link between the colimit computation of the categorical approach and the abstract semantics of configurations in the algebraic approach by proving that the encoding of a CommUnity diagram is behaviorally equivalent to the encoding of its colimit. Introduction In this paper, we report on new insights on architectural connectors raised by the analysis of mobility aspects within software architectures for Global Computing. Since there is no single formalism that can best address these aspects we study the relationships between two different approaches: CommUnity [6] and the Tile Model [7]. The former is a prototype architectural description language that was developed to formalize the conceptual distinction between computation and coordination in communicating distributed systems. The latter is an operational model designed for concurrent systems. It is suited for behavioral semantics that deal uniformly with closed and open systems. Research supported by the FET-GC Project IST-2001-32747 . These two frameworks can be seen as “canonical” representatives of two general approaches to the study of complex system structures: the categorical approach (for CommUnity) and the algebraic approach (for the Tile Model). The Categorical Approach, which can be traced back to [8], is based on the definition of a category whose objects model system components and whose morphisms represent how systems are superposed, simulated, refined, etc. Complex systems can be modeled as diagrams in the category. Composition is achieved via universal constructions like taking the colimit, which encapsulates components and interactions in a single object. Different diagrams have the same colimit, which thus defines some sort of denotational semantics. The categorical approach is best suited for modeling systems based on shared resources (e.g., memory, channels, actions), sharing being expressed through morphisms. The main contribution of CommUnity has been to show how the categorical approach can be applied to program designs, formalizing architectural aspects. The Algebraic Approach, initiated in [9, 13], is based on signatures whose constants are the basic processes and whose operations capture composition. The initial algebra of the signature defines the class of admissible systems. Typically, systems are equipped with an operational semantics based on labeled transition systems in the style [14]. Abstract semantics can then be obtained by collapsing systems that are equivalent w.r.t. some observational semantics. The algebraic approach is best suited for message passing calculi. The main contribution of the Tile Model has been the support for two different dimensions of composition to co-exist, namely Computation and Distribution. On the one hand, we are interested in capturing the “physiological” structure of architectural connectors, i.e. what they are made of and what mechanisms they put in place to coordinate required interactions, which is addressed through CommUnity. This is essential, for instance, to provide support for more abstract levels of modeling. On the other hand, we are interested in the “social” structures in which these connectors live, i.e. the laws that regulate the way they can be composed and superposed to interconnect components, as can be captured in the Tile Model. This step is essential for supporting the transition between the declarative and operational aspects of architectural configurations. We are even more interested in relating the two approaches. In particular, the technical contribution of this paper is three-fold: 1 we define a standard decomposition for CommUnity diagrams in terms of elementary programs; 2 we define a translation from CommUnity diagrams into the Tile Model; 3 we establish a strong link between the denotational semantics of the categorical approach and the abstract semantics yielded by the algebraic approach by proving that the encoding of a CommUnity diagram is behaviorally equivalent to the encoding of its colimit. design P is in in(V) out out(V) do g Γ g: G(g) R(g) Figure 1. CommUnity designs. design counter is in x:nat out y:int do inc: true y : y x [] dec: y MIN y : y x Figure 2. The “counter” design. This work has been developed in the context of FET-FP5 Project AGILE [2] on “Architectures for Mobility”, that brings together different approaches to the modeling of architectural aspects of systems with the aim of complementing each other and of extending them to cope with Global Computing. Structure of the paper. In § 1 we survey CommUnity and the Tile Model. In § 2 we define the standard decomposition of CommUnity diagrams and prove colimit preservation. In § 3 we define the tile system associated to CommUnity while in § 4 we sketch the encoding and the bisimilarity result (Theorem 9). Conclusions and directions for future work are given in § 5. 1. Background 1.1 CommUnity In this section we give a brief account of CommUnity, while referring the interested reader to [5] for full details. CommUnity is a parallel program design language in the style of Unity [3] but based on action sharing. It was initially proposed in [6] to show how programs fit into Goguen’s categorical approach to General Systems Theory [8]. Since then, it has evolved into an architectural description language, capitalizing on the fact that CommUnity takes to an extreme the separation between “computation” and “coordination” concerns. The individual components of a system can be defined in terms of channels and actions organized in designs. In this paper, we consider a special class of CommUnity designs (see Figure 1), called programs, which are particular instances of the more general form in [5]. Channels. A design P is based on a set of (input and output) channels V . Input channels are read-only and are controlled by the environment while output channels are controlled locally by the component. Each channel v is typed with a sort sort v which is part of a fixed many-sorted data algebra. Actions. A design P exploits a pointed set of actions Γ . Actions represent possible interactions between the component and the environment. For each action name g, G g is the enabling condition of g (a predicate on V ), and R g design counter is in out do x: nat y: int inc: true y:=y+x [] dec: y>MIN y:=y−x design monitor is in out do val: nat num: nat chgc: val>VAL num:=num+1 [] chg: val<=VAL skip design link is in i: nat do ac: true skip x i val inc ac chg,chgc (a) (b) design colimit is in out do x: nat y: int, num:nat incc: val>VAL y:=y+x || num:=num+1 [] inc: val<=VAL y:=y+x [] dec: y>MIN y:=y−x Figure 3. The “counter with monitor” diagram and its colimit. is a multiple assignment, assigning to output channels expressions on input and output channels. The empty assignment is denoted by skip. As an example, consider the design in Figure 2. It models a component that calculates and stores an integer value. It can decrease or increment this value of x units through the execution of actions inc and dec, but decreasing is only allowed when a minimum value MIN has not been reached. A program with a non-empty set of input channels is open in the sense that its execution is only meaningful in a configuration in which these inputs have been instantiated with channels controlled by other components. A closed program behaves as follows: at each step, one of the actions whose enabling condition holds is selected, and its assignments are executed atomically. Diagrams. The interaction between programs is based on action synchronization and interconnection of input and output channels. Name bindings are established through diagrams of the form in Figure 3(a) in a category c-DSGN with morphisms as follows. We may consider that the design in the middle is a program whose actions are all true skip, called a cable [5]. A morphism of designs σ : P1 P2 consists of a total function σvar : V1 V2 that preserves sorts and never maps an output channel to an input channel together with a pointed mapping σac : Γ2 Γ1 that maps a conditional multiple assignment G g R g to another one with stronger condition and a superset of the assignments (up-to renamings of channels). The diagram in Figure 3(a) defines a system with two components: a counter and a monitor. The monitor counts the executions of an action when channel val has a value greater than a fixed value VAL. In that case action chgc takes place, action chg is executed in the other cases. In this configuration, chgc and chg monitor the execution of action inc and the value of channel x, as shown by the interconnection of channels x of counter and val of monitor and the synchronization of action inc with both chg or chgc. Here dec is (implicitly) mapped to the action of link and thus not synchronized.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Highly Analysable, Reusable, and Realisable Architectural Designs with XCD

Connector-Centric Design (XcD) is a new approach to specifying software architectures. XcD views complex connectors as highly significant in architectural designs, as it is the complex connectors that non-functional quality properties in systems can emanate from. So, XcD promotes in designs a clean separation of connectors (interaction behaviours) from components (functional behaviours). Design...

متن کامل

Generator of Connectors for Sofa/dcup Annotation Generator of Connectors for Sofa/dcup Generátor Konektorù pro Sofa/dcup

The aim of the thesis was to design and implement generator of connectors for SOFA/DCUP architecture, which would, based on description of application architecture and its deployment specification, generate code skeletons for connectors used in the application. The generated code should reflect the specification of architectural model of SOFA/DCUP connectors. Because of problems identified in t...

متن کامل

Higher-Order Architectural Connectors

We develop a notion of higher-order connector towards supporting the systematic construction of architectural connectors for software design. A higherorder connector takes connectors as parameters and allows for services such as security protocols and fault-tolerance mechanisms to be superposed over the interactions that are handled by the connectors passed as actual arguments. The notion is fi...

متن کامل

Higher Order Connectors

A critical issue for architectural design is the nature of the glue, or connectors, with which a system's parts are combined. Thus an important rst step toward improving our ability to compose parts is to make to make connectors explicit semantic enties, where they can be documented, analyzed, and (sometimes) used to generate code. A number of notations for software architecture do precisely th...

متن کامل

A Compositional Approach to Connector Construction

We develop a notion of higher-order connector towards supporting the systematic construction of architectural connectors for software design. The idea is that individual properties of connectors, such as security and fault-tolerance, can be designed separately as higher-order connectors. Complex connectors can then be described as suitable combinations of high-order connectors and basic connect...

متن کامل

An ADL-Approach to Specifying and Analyzing Centralized-Mode Architectural Connection

A rigorous paradigm coordinating components is important in the design stage of large-scale software engineering. In this paper we propose a new Architecture Description Language, called ACDL, to represent the centralizedmode architectural connection in which all components are linked by a single connector. Following one usual approach to architectural description, in which component types and ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004